package com.flyqiu.flow.api.context;

import com.flyqiu.common.bean.FlyQiuBeanManage;
import com.flyqiu.common.transaction.FlyQiuTransactionManage;
import com.flyqiu.flow.api.cache.FlyQiuFlowCacheManage;
import com.flyqiu.flow.api.candidate.FlyQiyFlowCandidateManage;
import com.flyqiu.flow.api.deploy.FlyQiuFlowDeployManage;
import com.flyqiu.flow.api.element.FlyQiuFlowElementManage;


import com.flyqiu.flow.api.format.FlyQiuFlowBpmnFormatManage;
import com.flyqiu.flow.api.modelSource.FlowModelSourceManage;
import com.flyqiu.flow.api.script.FlyQiuFlowScriptActuatorManage;
import com.flyqiu.flow.api.script.FlyQiuFlowVarSerializeManage;
import com.flyqiu.flow.event.api.FlyQiuFlowEventManage;


public interface FlyQiuFlowGlobalContext {


    /**
     * 获取脚本管理
     *
     * @return
     */
    FlyQiuFlowScriptActuatorManage getFlowScriptManage();

    /**
     * 格式管理
     *
     * @return
     */
    FlyQiuFlowBpmnFormatManage getFlowBpmnFormatManage();

    /**
     * 获取事件管理
     *
     * @return
     */

    FlyQiuFlowEventManage getFlowEventManage();

    /**
     * 获取流程mapper管理
     *
     * @return
     */
    FlyQiuBeanManage getBeanManage();

    /**
     * 获取元素配置
     *
     * @return
     */

    FlyQiuFlowElementManage getFlowElementManage();

    /**
     * 流程模型资源管理
     *
     * @return
     */

    FlowModelSourceManage getFlowModelSourceManage();

    /**
     * 流程缓存管理
     *
     * @return
     */

    FlyQiuFlowCacheManage getFlowCacheManage();

    /**
     * 发布配置
     *
     * @return
     */
    FlyQiuFlowDeployManage getFlowDeployManage();

    /**
     * 事务管理
     *
     * @return
     */
    FlyQiuTransactionManage getTransactionManage();

    /**
     * 候选人加载器
     *
     * @return
     */
    FlyQiyFlowCandidateManage getFlowCandidateManage();

    /**
     * 变量管转换管理器
     *
     * @return
     */
    FlyQiuFlowVarSerializeManage getFlowVarSerializeManage();

}
